package com.pureut.system.api.factory;

import com.pureut.common.core.web.domain.AjaxResult;
import com.pureut.system.api.StorageFegin;
import com.pureut.system.api.dto.PurchaseOrderDto;
import com.pureut.system.api.vo.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;

/**
 * 服务降级处理
 * 
 * @author ruoyi
 */
@Component
public class RemoteStorageFallbackFactory implements FallbackFactory<StorageFegin>
{
    private static final Logger log = LoggerFactory.getLogger(RemoteStorageFallbackFactory.class);

    @Override
    public StorageFegin create(Throwable throwable)
    {
        log.error("服务调用失败:{}", throwable.getMessage());
        return new StorageFegin()
        {

            @Override
            public AjaxResult add(FeginProductionPickingVo feginProductionPickingVo) {
                return null;
            }

            @Override
            public AjaxResult addAutoProductionByDegreas(FeginProductionPickingVo feginProductionPickingVo) {
                return null;
            }

            @Override
            public AjaxResult selectMasterVolumeList(String masterVolumeNumber) {
                return null;
            }

            @Override
            public AjaxResult updateStockInfoById(WmsStockInfoVo wmsStockInfoVo) {
                return null;
            }

            @Override
            public AjaxResult remove(String truncationMasterVolumeNumber) {
                return null;
            }

            @Override
            public AjaxResult getStockInfo(WmsStockInfoVo wmsStockInfoVo) {
                return null;
            }

            @Override
            public AjaxResult updateStatus(WmsStockInfoVo wmsStockInfoVo) {
                return null;
            }

            @Override
            public AjaxResult getFreezeStockList(QualityFreezeVo qualityFreezeVo) {
                return null;
            }

            @Override
            public AjaxResult getUpdate(WarehouseStatusUpdateVo warehouseStatusUpdateVo) {
                return null;
            }

            @Override
            public AjaxResult addWmsStock(WmsStockInfoVo wmsStockInfoVo) {
                return null;
            }



            @Override
            public AjaxResult view(Long id) {
                return null;
            }

            @Override
            public AjaxResult wipAdd(WipCompletionVo wipCompletionVo) {
                return null;
            }

            @Override
            public AjaxResult wipOtherAdd(WipOtherAddVo wipOtherAddVo) {
                return null;
            }


            @Override
            public AjaxResult getDataByCategoryAndCode(String materialNumber) {
                return null;
            }

            @Override
            public AjaxResult updateSpunlace(WmsStockInfoVo wmsStockInfoVo) {
                return null;
            }

            @Override
            public AjaxResult getMoNumber(FeedVo feedVo) {
                return null;
            }

            @Override
            public AjaxResult addSale(PickingSaleVo pickingSaleVo) {
                return null;
            }

            @Override
            public AjaxResult batchArrival(PurchaseOrderDto purchaseOrderDto) {
                return null;
            }

            @Override
            public AjaxResult updateReceiptStatus(UpdateReceiptStatusVo updateReceiptStatusVo) {
                return null;
            }

            @Override
            public String getSum(String materialCode) {
                return null;
            }

            @Override
            public AjaxResult getDataByOnlyMark(ReturnStatusVo returnStatusVo) {
                return null;
            }

            @Override
            public AjaxResult updateStatus(UpdateDocVo updateDocVo) throws Exception {
                return null;
            }

            @Override
            public AjaxResult outSourceUpdateStatus(UpdateDocVo updateDocVo) throws Exception {
                return null;
            }

            @Override
            public AjaxResult saleUpdateStatus(UpdateDocVo updateDocVo) throws Exception {
                return null;
            }

            @Override
            public AjaxResult competeUpdateStatus(UpdateDocVo updateDocVo) throws Exception {
                return null;
            }

            @Override
            public AjaxResult purchaseUpdateStatus(UpdateDocVo updateDocVo) throws Exception {
                return null;
            }

            @Override
            public AjaxResult returnUpdateStatus(UpdateDocVo updateDocVo) throws Exception {
                return null;
            }

            @Override
            public AjaxResult restUpdateStatus(UpdateDocVo updateDocVo) throws Exception {
                return null;
            }

            @Override
            public AjaxResult allotUpdateStatus(UpdateDocVo updateDocVo) throws Exception {
                return null;
            }

            @Override
            public double getStockWeight(String materialCode) {
                return 0;
            }


            @Override
            public AjaxResult getByCustomerComplaintsList(PickingSaleVo pickingSaleVo) {
                return null;
            }

            @Override
            public void updateStatusThaw(String materialNumber) {

            }

            @Override
            public AjaxResult addOther(SubcontractReceiptOtherVo subcontractReceiptOtherVo) {
                return null;
            }

            @Override
            public AjaxResult deleteDetail(DeleteDetailVo deleteDetailVo) {
                return null;
            }

            @Override
            public AjaxResult addPurchaseFeign(PickingPurchaseVo pickingPurchaseVo) {
                return null;
            }

            @Override
            public AjaxResult updateStatus(UpdateStatusVo updateStatusVo) {
                return null;
            }

            @Override
            public AjaxResult deleteData(DeleteDetailVo deleteDetailVo) {
                return null;
            }

            @Override
            public AjaxResult getRetrospectManageList(Long wsiCategory, String wsiMaterialNumber) {
                return null;
            }

            @Override
            public AjaxResult MaterialResumeList(Long wsiCategory, String wsiMaterialNumber) {
                return null;
            }

            @Override
            public AjaxResult getRetrospectMaterialList(String wsiMaterialNumber) {
                return null;
            }

            @Override
            public AjaxResult getRetrospectProductList(String codingType, String wsiMaterialNumber) {
                return null;
            }

            @Override
            public AjaxResult getProductTraceabilityList(String codingType, String wsiMaterialNumber) {
                return null;
            }

            @Override
            public AjaxResult getProductPersonalDetails(String codingType, String wsiMaterialNumber) {
                return null;
            }

            @Override
            public String getReceiptNo(String onlyMark) {
                return null;
            }

            @Override
            public void updatePrintStatus(UpdatePrintStatusVo updatePrintStatusVo) {

            }

            @Override
            public void deleteByMasterVolumeNum(String deleteByMasterVolumeNum) {

            }

            @Override
            public AjaxResult selectProductStockInfoById(String wsiMaterialNumber) {
                return null;
            }

            @Override
            public AjaxResult updateByDegreas(DegreasByUpdateVo degreasByUpdateVo) {
                return null;
            }

            @Override
            public void deleteByDegreas(String degreasOrderNumber) {

            }

            @Override
            public AjaxResult updateMaterialGrade(UpdateGradeVo updateGradeVo) {
                return null;
            }

            @Override
            public AjaxResult updateStatusByQuality(UpdateStatusByQualityVo updateStatusByQualityVo) {
                return null;
            }

            @Override
            public AjaxResult updateProductionMaterialByQuality(UpdateStatusByQualityVo updateStatusByQualityVo) {
                return null;
            }

            @Override
            public AjaxResult updatewipCompletionByQuality(UpdateStatusByQualityVo updateStatusByQualityVo) {
                return null;
            }

            @Override
            public AjaxResult updateMiscellaneousReceiptByQuality(UpdateStatusByQualityVo updateStatusByQualityVo) {
                return null;
            }

            @Override
            public AjaxResult wipCompletionQualityStatus(ReturnStatusVo returnStatusVo) {
                return null;
            }

            @Override
            public AjaxResult addPickingOutsource(SubcontractReceiptOtherVo subcontractReceiptOtherVo) {
                return null;
            }

            @Override
            public AjaxResult getDataByOnlyMarkSub(ReturnStatusVo returnStatusVo) {
                return null;
            }

            @Override
            public AjaxResult updateSubcontractReceiptStatus(UpdateReceiptStatusVo updateReceiptStatusVo) {
                return null;
            }

            @Override
            public void maxStock() throws Exception {

            }

            @Override
            public void expirationDate() throws Exception {

            }

            @Override
            public void recheck() throws Exception {

            }

            @Override
            public AjaxResult spunlaceNumber(String spunlaceOrderNumber) {
                return null;
            }

            @Override
            public AjaxResult closeOutsourceFeign(PickingOutsourceFeignVo pickingOutsourceFeignVo) {
                return null;
            }


        };

    }
}
